


public class Main {

    public static void main(String[] args) {
        //求平均数
        //对于位运算 -- 注意加括号
        int a = 10;
        int b = 20;
        int c = a + ((b-a) >> 1);
        System.out.println(c);
    }
    public static void main4(String[] args) {
        int b = 10;
        System.out.println(b>10 ? 1 : 2);
        //3 > 1 ? 1 : 2 ; 不允许单独存在 -- 赋值
    }
    public static void main3(String[] args) {
        //位运算符
        System.out.println(0101 & 0100);
        //位移
        System.out.println(0b0001 << 1);//0b开头表示二进制 00开头表示八进制
        System.out.println(0b0100 >> 2);
        System.out.println(0b1111 >>> 3);//>>> 无符号右移
    }
    public static void main2(String[] args) {
        //逻辑运算
        //boolean表达式1 && boolean表达式2
        int a = 1;
        int b =1;
        //System.out.println(a && b); 不存在非0是真， 所以这样的代码是不对的
        System.out.println(a > 0 && b  > 0);
     //   System.out.println(a > 5 || a/0 != 0); 报错
        System.out.println(a > 5 && a/0 != 0); //第一个为假就不执行第二个 -- 不报错
        System.out.println(a > 0 & b < 0);
        System.out.println(a >0 | b < 0);
    }
    public static void main1(String[] args) {

        //它的真假只有两个值 true false
        // 不存在 0假， 非0是真
        /*System.out.println( 1 > 2);
        System.out.println(10 == 10);
        System.out.println( 3 > 1);*/

        //特殊
        /*int a = 1;
        a = a++;
        System.out.println(a);
*/
        /*
        //增量运算符
        int a = 1;
        a += 1;
        double d = 12.5;
        //a = a + d;//大的放小的里，放不下，需要类型提升
        //a = (int)(a+d)
        //但是可以
        a += d;//自动进行类型转换 -- a是int类型，所以结果是int类型
        System.out.println(a);
*/
        // % 求余数 ： Java 对小数%小数 也可以求余数--包括-负小数
     /*   System.out.println(10%3); //1
        System.out.println(10%-3); //只是余数 1
        System.out.println(-10%3); // -1
        System.out.println(-10%-3);*/ // -1

    }
}